#ifndef DATA__H
#define DATA__H
#include "lcd.h"
#include "touch.h"
#include <stddef.h>
#include <pthread.h>
// 各个文件描述符
int fd_beep;
int fd_dth11;
int fd_light;
int fd_adc;
int fd_led;
int fd_socket;
// 屏幕句柄
lcd *s;
// 智能控制开关
unsigned int adjust_control;
// 网络连接开关
unsigned int network_control;
// 智能控制弹窗开关
unsigned int adjust_cmd;
// 网络连接弹窗开关
unsigned int network_cmd;
// 四种数据
unsigned int wd;
unsigned int sd;
unsigned int gz;
unsigned int qt;
// 记录当前页面
int myindex;
// 智能控制参数
unsigned int bzwd;
unsigned int bzsd;
unsigned int bzgz;
unsigned int bzqt;
// 服务端ip地址
char *server_ip;
// 读取线程id
pthread_t thread_read;
// 设备控制开关
unsigned int _switch[4];

void data_init(void);         // 所有元素初始化并赋值
void *data_send(void *arg);   // 数据读取并发送个远程终端 - 客户端开始则运行
void *data_read(void *arg);   // 从远程终端读取数据 - 客户端开始则运行
void *data_adjust(void *arg); // 后台线程 - 智能控制和相关状态显示 - 客户端开始则运行

void *data_myprint(void *arg);     // 数据线程 - 打印读取到的数据
void *device_mycontrol(void *arg); // 设备开关控制线程

int socket_init(char *addr);                     // 套接字创建
int mysend(int com, int a, int b, int c, int d); // 发送数据到服务端
int socket_connect(void);                        // 连接服务端
void bz_cmd(lcd *s);                             // 智能控制参数显示弹窗
void wl_cmd(lcd *s);                             // 网络相关信息显示弹窗
#endif                                           // DEBUG